package cn.mjnxin.iot.connector.context;

import cn.mjnxin.iot.base.cache.LocalCache;

/**
 * 对端改变异常
 * @author CLG 2023年10月10日
 * @version V1.0.0
 */
public interface IPeerChangedListener {
    /**
     * 对端断网离线
     * @param pid
     * @param peerAddress
     * @param cache
     */
    void onRemovePeer(Integer pid, String peerAddress, LocalCache cache);
    /**
     * 主动将对端断网离线
     * @param pid
     * @param peerAddress
     * @param cache
     */
    void onClosePeer(Integer pid, String peerAddress, LocalCache cache);
    /**
     * 对端超时踢出
     * @param pid
     * @param peerAddress
     * @param cache
     */
    void onKickoutPeer(Integer pid, String peerAddress, LocalCache cache);
    /**
     * 对端超时踢出
     * @param pid
     * @param peerAddress
     * @param peerKey
     */
    void unlinkPeer(Integer pid, String peerAddress, String peerKey);
    
    /**
     * 切换对端重新的网络连接
     * @param pid
     * @param oldAddress
     * @param ipAddress
     * @param peerAddress
     */
    void changePeerLink(Integer pid, String oldAddress, String ipAddress, String peerAddress);
}
